package test_unitaire;

import static org.junit.Assert.assertTrue;

import org.junit.Test;

import buisness_service.Finance_annee;
import buisness_service.Finance_jour;
import buisness_service.Finance_mois;
import buisness_service.Rapport;
import buisness_service.Rapport.Mois;
import buisness_service.User;

public class Test_Rapport {

	@Test
	public void testRechercher() {

		User u = new User();
		assertTrue(Rapport.rechercher_mois(2009, Mois.Avril, u.getRapport()) == false);
		assertTrue(Rapport.index_annee == -1);
		assertTrue(Rapport.index_mois == -1);
		Finance_annee f = new Finance_annee(2009, u.getRapport());
		assertTrue(Rapport.rechercher_mois(2009, Mois.Decembre, u.getRapport()) == false);
		assertTrue(Rapport.index_annee == 0);
		assertTrue(Rapport.index_mois == -1);
		Finance_mois f_m = new Finance_mois(Mois.Avril, f, u);
		assertTrue(Rapport.rechercher_mois(2009, f_m.getMois(), u.getRapport()) == true);
		assertTrue(Rapport.index_annee == 0);
		assertTrue(Rapport.index_mois == 0);

		assertTrue(Rapport.rechercher_mois(2008, Mois.Mars, u.getRapport()) == false);
		assertTrue(Rapport.index_annee == -1);
		assertTrue(Rapport.index_mois == -1);

		Rapport.postesDpenses.clear();
		Rapport.postesRevenus.clear();

	}

	@Test
	public void TestRechercher_jour() {

		User u = new User();
		assertTrue(Rapport
				.rechercher_jour(2009, Mois.Avril, 29, u.getRapport()) == false);
		assertTrue(Rapport.index_annee == -1);
		assertTrue(Rapport.index_mois == -1);
		assertTrue(Rapport.index_jour == -1);
		Finance_annee f = new Finance_annee(2009, u.getRapport());
		Finance_mois f_m = new Finance_mois(Mois.Avril, f, u);
		assertTrue(Rapport
				.rechercher_jour(2009, Mois.Avril, 29, u.getRapport()) == false);
		assertTrue(Rapport.index_annee == 0);
		assertTrue(Rapport.index_mois == 0);
		assertTrue(Rapport.index_jour == -1);
		Finance_jour f_j = new Finance_jour(29, f_m, u);
		assertTrue(Rapport
				.rechercher_jour(2009, Mois.Avril, 29, u.getRapport()) == true);

		assertTrue(Rapport.index_jour == 0);
		Finance_jour f_j2 = new Finance_jour(31, f_m, u);
		assertTrue(Rapport
				.rechercher_jour(2009, Mois.Avril, 31, u.getRapport()) == true);

		assertTrue(Rapport.index_jour == 1);

		Rapport.postesDpenses.clear();
		Rapport.postesRevenus.clear();
	}

}
